package com.yeyks.commonReference.service.vip;

import com.yeyks.account.dal.domain.AccountInfo;
import com.yeyks.common.base.PageResult;
import com.yeyks.commonReference.pojo.param.minivipcard.MiniCardWithdrawalParam;
import com.yeyks.vip.dal.domain.MiniCardWithdrawalOrder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yeyks.vip.param.MiniCardWithdrawalOrderListParam;
import com.yeyks.vip.param.MiniCardWithdrawalOrderUpdateParam;
import com.yeyks.vip.result.MiniCardWithdrawalOrderDownloadResult;
import com.yeyks.vip.result.MiniCardWithdrawalOrderListResult;

import java.util.List;


/**
 * <p>
 * 酒店小vip售卡佣金提现订单表 服务类
 * </p>
 *
 * @author yun
 * @since 2020-01-06
 */
public interface MiniCardWithdrawalOrderService extends IService<MiniCardWithdrawalOrder> {


    /**
     * 校验该用户是否可以提现
     *
     * @param param
     */
    Boolean checkWithDraw(MiniCardWithdrawalParam param);

    /**
     * 提现订单列表
     *
     * @param param {@link MiniCardWithdrawalOrderListParam}
     * @return
     */
    PageResult<MiniCardWithdrawalOrderListResult> myList(AccountInfo loginUser, MiniCardWithdrawalOrderListParam param);

    /**
     * 修改提现订单状态
     *
     * @param loginUser 当前登录账户
     * @param param     {@link MiniCardWithdrawalOrderUpdateParam}
     * @return
     */
    Boolean pass(AccountInfo loginUser, MiniCardWithdrawalOrderUpdateParam param);

    /**
     * 批量修改提现订单状态为审核通过
     *
     * @param loginUser 当前登录账户
     * @param orderNo   订单号集合逗号隔开
     * @return
     */
    Boolean myUpdateMore(AccountInfo loginUser, String orderNo);

    /**
     * 提现订单导出
     *
     * @param param
     * @return
     */
    List<MiniCardWithdrawalOrderDownloadResult> orderDownload(AccountInfo loginUser, MiniCardWithdrawalOrderListParam param);

    /**
     * 通过订单号查询该提现订单
     *
     * @param orderNo
     * @return
     */
    MiniCardWithdrawalOrder selectByOrderNo(String orderNo);
}
